package com.zzw.springboot.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.zzw.springboot.bean.ProductCategory;
import com.zzw.springboot.bean.Supplier;

import java.util.List;

/**
 * 商品分类服务接口
 */
public interface ProductCategoryService extends IService<ProductCategory> {
    /**
     * 添加商品分类
     * @param category 分类信息
     * @return 是否成功
     */
    boolean addCategory(ProductCategory category);

    /**
     * 更新商品分类
     * @param category 分类信息
     * @return 是否成功
     */
    boolean updateCategory(ProductCategory category);

    /**
     * 删除商品分类
     * @param categoryId 分类ID
     * @return 是否成功
     */
    boolean deleteCategory(Integer categoryId);

    /**
     * 根据ID查询商品分类
     * @param categoryId 分类ID
     * @return 分类信息
     */
    ProductCategory getCategoryById(Integer categoryId);

    /**
     * 查询商品分类列表
     * @param category 查询条件
     * @return 分类列表
     */
    List<ProductCategory> getCategoryList(ProductCategory category);

    /**
     * 查询全部分类
     * @return 分类列表
     */
    List<ProductCategory> getAllCategories();

    /**
     * 检查分类是否有子分类
     * @param categoryId 分类ID
     * @return 是否有子分类
     */
    boolean hasChildren(Integer categoryId);

    /**
     * 检查分类名称是否存在
     * @param categoryName 分类名称
     * @param parentId 父分类ID
     * @param categoryId 分类ID（排除项）
     * @return 是否存在
     */
    boolean checkCategoryNameExists(String categoryName, Integer parentId, Integer categoryId);
}
